<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;

class Test extends Controller
{
    public function index()
    {
//        快捷查询
        $row = Db::table('user')
//            ->where('id', 5)
            ->where('id', '>', 5)
            ->select();

        $row = Db::table('user')
            ->where('id', 'in', [1,3,5])
//            ->where('id', '<=', 5)
            ->select();

        $row = Db::table('user')
            ->where('age', '<', 18)
            ->where('sex', '=', 0)
            ->select();

        $row = Db::table('user')
//            ->where('sex', '=', 0)
//            ->whereor('province', '上海')
            ->where(['sex'=>'0'])
            ->whereor(['province'=> '上海'])
            ->select();

//        批量查询
        $row = Db::table('user')
            ->where([
                'id'=> ['between', '10,20'],
                'sex'=>['eq',0]
            ])
            ->select();

        $row = Db::table('user')
            ->where('sex','eq',0)
            ->where('id',['between','1,3'], ['in',[6,66,666,]], 'or')
            ->select();


//        区间查询
        $row = Db::table('user')
            ->where('id', ['>',5], ['<', 9])
            ->select();


//        多表查询
//            1). 手动多表
        $row = Db::field('u.name un, l.name ln')
            ->table(['hc_user'=>'u','hc_lover'=>'l'])
            ->where('u.id = l.user_id')
            ->select();

//            2). JOIN
        $row = Db::table('hc_user')
            ->alias('u')
            ->field(['u.name'=>'un', 'l.name'=>'ln'])
            ->join('hc_lover l', 'u.id = l.user_id')
            ->select();

//            3). 视图查询
        $row = Db::view('hc_user', ['name'=>'un'])
            ->view('hc_lover',['name'=>'ln'], 'hc_user.id = hc_lover.user_id')
            ->select();

//        聚合查询
        $row = Db::table('user')->avg('age');
        //  每个省份里有几人
        $row = Db::table('hc_user')
            ->field('province, count(id) cs')
            ->group('province')
            ->select();
        //  每个省份里有哪些人
        $row = Db::table('hc_user')
            ->field('province, group_concat(name) names')
            ->group('province')
            ->fetchSql(true)
            ->select();


//        子查询
//            1.fetchSql 方式
//            2.buildSql 方式


        var_dump($row);
    }



}
